Object detection and recognition are difficult problems in the field of computer vision. Object detection involves determining the presence of one or more objects in an image of a scene. Image segmentation comprises identifying all image elements that are part of the same object in an image. Object recognition comprises assigning semantic labels to the detected objects. For example, to determine a class of objects that the object belongs to such as cars, people or buildings. Object recognition can also comprise assigning class instance labels to detected objects. For example, determining that particular image elements belong to different car instances. Object recognition may also be referred to as semantic segmentation.
There is a need to provide simple, accurate, fast and computationally inexpensive methods of object detection and recognition for many applications. In addition, it is desired to cope with partial object occlusion where an image of an object is partially obscured by the presence of one or more other objects in front of it. The objects involved in the occlusion may or may not be of the same class or class instance. Coping with partial object occlusion is difficult because some information about the partially occluded object is unavailable in the image and yet it is still required to detect and recognize the object. In addition, there is a need to cope with object deformation. That is, an object is to be recognized despite the fact that its shape will differ in different views of that object, and despite that its shape may differ from other instances from the same category of object. Also, it is required to deal with cluttered images so that objects are to be recognized in an image even if that image comprises lots of detail and other objects rather than simply an image of a single object in front of a plain area.